昨天才剛講完NN的缺點,今天就要先來介紹CNN,主要是CNN是圖像辨識中一個很重要的突破,但是CNN還是有一些缺點,這邊就先來簡單的介紹CNN以及CNN的缺點
W. Law, "Capsule Neural Networks — The future for autonomous vehicles," 2019.
首先先來看CNN的架構
CNN的架構,是由卷積(Convolutional)+Relu,和池化這兩層不斷的交叉處理獲得特徵
利用扁平層將二維的輸出結果攤平成一維向量,再利用全連接層做最後的特徵提取
由於提取出來的特徵可能是負無限大到正無限大,因此可以使用softmax函數將其轉換為0~1之間的數,就可以根據不同的權重找出輸入的圖片的分類為何
https://zh.wikipedia.org/wiki/%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C
卷積和池化這兩層最主要是為了要減少後續運算時的效能,上圖為池化層在做的事情,圖中使用的為最大池化層,左上角橘色的部分,抓取最大值6作為2x2的池化窗口(depth slice)的輸出,但是這個方法其實會失去很多重要的特徵,因此capsule使用向量並非純量就是為了解決這個問題
W. Law, "Capsule Neural Networks — The future for autonomous vehicles," 2019.
CNN最大的挑戰就是沒辦法是別上圖中的姿勢、紋理和變形,因此需要導入膠囊網路
CNN在分類圖片中有很好的效果,因為它可以了解臉上的不同特徵
通過學習成千上萬張樣本圖像並從錯誤中學習來做到這一點
但由於CNN的平移不變性,因此這兩張圖片CNN都會識別為臉
CNN的限制就在於,他沒辦法識別兩個特徵之間的關係
而膠囊網路由於加入了向量的概念,因此有辦法識別到不同特徵間的關係